package com.heiye.quiz.biz.rpc;

import com.heiye.framework.common.response.Response;
import com.heiye.kv.api.api.KeyValueFeignApi;
import com.heiye.kv.api.dto.req.AddQuizContentReqDTO;
import com.heiye.kv.api.dto.req.DeleteQuizContentReqDTO;
import com.heiye.kv.api.dto.req.FindQuizContentReqDTO;
import com.heiye.kv.api.dto.rsp.FindQuizContentRspDTO;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Component;

import java.util.Objects;

/**
 * @author: heiye
 * @date: 2025/03/17 下午10:13
 * @version: v1.0.0
 * @description: 键值存储服务
 */
@Component
public class KeyValueRpcService {

    @Resource
    private KeyValueFeignApi keyValueFeignApi;

    /**
     * 保存问题内容
     *
     * @param uuid
     * @param content
     * @return
     */
    public boolean saveQuizContent(String uuid, String content) {
        AddQuizContentReqDTO addQuizContentReqDTO = new AddQuizContentReqDTO();
        addQuizContentReqDTO.setUuid(uuid);
        addQuizContentReqDTO.setContent(content);

        Response<?> response = keyValueFeignApi.addQuizContent(addQuizContentReqDTO);

        if (Objects.isNull(response) || !response.isSuccess()) {
            return false;
        }

        return true;
    }

    /**
     * 删除笔记内容
     *
     * @param uuid
     * @return
     */
    public boolean deleteQuizContent(String uuid) {
        DeleteQuizContentReqDTO deleteQuizContentReqDTO = new DeleteQuizContentReqDTO();
        deleteQuizContentReqDTO.setUuid(uuid);

        Response<?> response = keyValueFeignApi.deleteQuizContent(deleteQuizContentReqDTO);

        if (Objects.isNull(response) || !response.isSuccess()) {
            return false;
        }

        return true;
    }

    /**
     * 查询笔记内容
     *
     * @param uuid
     * @return
     */
    public String findQuizContent(String uuid) {
        FindQuizContentReqDTO findQuizContentReqDTO = new FindQuizContentReqDTO();
        findQuizContentReqDTO.setUuid(uuid);

        Response<FindQuizContentRspDTO> response = keyValueFeignApi.findQuizContent(findQuizContentReqDTO);

        if (Objects.isNull(response) || !response.isSuccess() || Objects.isNull(response.getData())) {
            return null;
        }

        return response.getData().getContent();
    }
}
